/**
 * Copyright &copy; com.nmf
 */
package com.nmf.site.biz.zjauth.service;

import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.nmf.dao.gen.BizBillZhuanjiaMapper;
import com.nmf.dao.gen.bean.BizBillZhuanjia;
import com.nmf.dao.gen.bean.BizBillZhuanjiaExample;
import com.nmf.site.common.persistence.Page;
import com.nmf.site.common.utils.IdGenerater;
import com.nmf.site.modules.sys.entity.User;
import com.nmf.site.modules.sys.utils.UserUtils;

/**
 * 专家权限Service
 * @author bm
 * @version 2019-03-03
 */
@Service
@Transactional(readOnly = true)
public class BizBillZhuanjiaService{

	@Autowired
	BizBillZhuanjiaMapper bizBillZhuanjiaMapper;
	@Autowired
	IdGenerater idGenerater;
	
	public BizBillZhuanjia get(String no) {
		return bizBillZhuanjiaMapper.selectByPrimaryKey(no);
	}
	
	public List<BizBillZhuanjia> findList(BizBillZhuanjia bizBillZhuanjia) {
		BizBillZhuanjiaExample bizBillZhuanjiaExample = new BizBillZhuanjiaExample();
		BizBillZhuanjiaExample.Criteria criteria = bizBillZhuanjiaExample.createCriteria();
		
		return bizBillZhuanjiaMapper.selectByExample(bizBillZhuanjiaExample);
	}
	
	public Page<BizBillZhuanjia> findPage(Page<BizBillZhuanjia> page, BizBillZhuanjia bizBillZhuanjia) {
		BizBillZhuanjiaExample bizBillZhuanjiaExample = new BizBillZhuanjiaExample();
		BizBillZhuanjiaExample.Criteria criteria = bizBillZhuanjiaExample.createCriteria();
		
		bizBillZhuanjiaExample.setPage(page);
		
		List<BizBillZhuanjia> dlist = bizBillZhuanjiaMapper.selectByExample(bizBillZhuanjiaExample);
		page.setList(dlist);
		page.setCount(bizBillZhuanjiaMapper.countByExample(bizBillZhuanjiaExample));
		
		return page;
	}
	@Transactional(readOnly = false)
	public void save(BizBillZhuanjia bizBillZhuanjia) {
		if(StringUtils.isNotBlank(bizBillZhuanjia.getUid())) {
			User user = UserUtils.get(bizBillZhuanjia.getUid());
			bizBillZhuanjia.setUname(user.getName());
		}
		if(StringUtils.isNotEmpty(bizBillZhuanjia.getId())&&get(bizBillZhuanjia.getId())!=null) {
			bizBillZhuanjiaMapper.updateByPrimaryKeySelective(bizBillZhuanjia);
		}else {
			Date date = new Date();
			bizBillZhuanjia.setCreateDate(date);
			bizBillZhuanjia.setId(idGenerater.genClsNo("bizBillZhuanjia"));
			bizBillZhuanjia.setUpdateDate(date);
			bizBillZhuanjiaMapper.insertSelective(bizBillZhuanjia);
		}
	}
	
	@Transactional(readOnly = false)
	public void delete(BizBillZhuanjia bizBillZhuanjia) {
		bizBillZhuanjiaMapper.deleteByPrimaryKey(bizBillZhuanjia.getId());
	}
	
}